export interface Dictionary {
  id: string;
  code: string;
  name: string;
  description?: string;
  status?: number;
  sort?: number;
  createdAt?: Date;
  updatedAt?: Date;
}

export interface DictionaryItem {
  id: string;
  dictionaryId: string;
  label: string;
  value: string;
  status?: number;
  sort?: number;
  parentId?: string;
  createdAt?: Date;
  updatedAt?: Date;
}

export interface CreateDictionaryRequest {
  code: string;
  name: string;
  description?: string;
  status?: number;
  sort?: number;
}

export interface UpdateDictionaryRequest {
  name?: string;
  description?: string;
  status?: number;
  sort?: number;
}

export interface CreateDictionaryItemRequest {
  dictionaryId: string;
  label: string;
  value: string;
  status?: number;
  sort?: number;
  parentId?: string;
}

export interface UpdateDictionaryItemRequest {
  label?: string;
  value?: string;
  status?: number;
  sort?: number;
  parentId?: string;
}

export interface DictionaryQueryParams {
  page?: number;
  pageSize?: number;
  code?: string;
  name?: string;
  status?: number;
}

export interface DictionaryItemQueryParams {
  page?: number;
  pageSize?: number;
  dictionaryId?: string;
  label?: string;
  status?: number;
  parentId?: string;
}